package com.feiclub.oss.controller;


import com.feiclub.oss.utils.MinioUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@Slf4j
@RestController
@RequiredArgsConstructor
public class FileController {
    private final MinioUtil minioUtil;

    @RequestMapping("/testGetAllBuckets")
    public String  testGetAllBuckets() throws Exception {
        List<String> allBucket = minioUtil.getAllBucket();
        return allBucket.get(0);
    }
}



//区别:
//
//服务提供商: 阿里云OSS是由阿里云提供的商业对象存储服务，而MinIO是一个开源的对象存储服务器。
//部署方式: OSS是托管服务，用户不需要管理底层硬件或基础设施。MinIO可以自托管，可以在本地、云环境或边缘环境中部署。
//成本: 使用OSS可能会涉及更多的成本，因为它是商业服务，而MinIO作为开源软件，可以免费部署和使用。
//集成: OSS与阿里云的其他服务紧密集成，提供了一站式的云服务体验。
//服务级别协议（SLA）: 商业服务如OSS通常提供严格的SLA，保证服务的可用性和性能。
//好处:
//
//易用性: 作为托管服务，OSS简化了存储管理，用户无需担心硬件维护和扩展问题。
//可靠性: 提供高可用性和数据持久性，通常具有多个备份和灾难恢复措施。
//扩展性: 可以轻松扩展存储容量，适应不断变化的存储需求。
//安全性: 提供多层次的安全措施，包括数据加密、身份认证和网络安全。
//支持和服务: 作为商业服务，OSS提供专业的技术支持和客户服务。
//MinIO
//区别:
//
//开源: MinIO是一个开源项目，可以自由下载、修改和分发。
//S3兼容性: MinIO提供与Amazon S3兼容的API，使其可以作为私有云S3服务使用。
//轻量级: MinIO设计轻量级，易于部署和维护。
//多租户: 通过MinIO Operator，可以在Kubernetes上部署和管理多租户MinIO集群。
//好处:
//
//自主控制: 作为自托管解决方案，用户可以完全控制自己的数据和基础设施。
//成本效益: 对于希望最小化成本的用户和组织来说，MinIO提供了一种经济高效的存储解决方案。
//灵活性: 可以在各种环境中部署，包括公共云、私有云、混合云和边缘计算环境。
//社区支持: 作为开源项目，MinIO拥有活跃的社区，提供支持和贡献代码。
//创新速度: 开源项目通常能够快速迭代和集成新技术。
//在选择OSS服务时，需要考虑以下因素：
//
//预算: 是否有足够的预算支付商业服务费用。
//技术能力: 是否有能力管理和维护自托管的存储解决方案。
//特定需求: 应用程序的具体需求，例如数据安全性、合规性、延迟和吞吐量。
//集成需求: 是否需要与其他云服务紧密集成。
//每种解决方案都有其适用场景，选择哪一种取决于您的具体需求和偏好。
